在這篇文章,我們先運行甜點應用程式。會看到依序執行 onCreate()
、onStart()
、onResume()
。
當點擊裝置的返回鍵,我們可以看到依序發生 onPause()
、onStop()
、onDestroy()
。
onDestroy()
代表的意義是,Activity 被完全關閉,並且可以被垃圾回收 (garbage collected)。
垃圾回收 (garbage collected)指的是自動化清理不再使用的物件(object)。
所以在 onDestroy()
後,裝置的作業系統瞭解到與這個 Activity 關聯的資源可以被丟棄,會繼續清理、開始記憶體的清理動作。這代表資源被釋放出來。
如果我們再點擊圖示來重啟甜點應用程式,我們可以看到嶄新的 Activity,不具備先前的遊戲狀態。
當我再次點擊返回鍵導航至應用程式外,會銷毀 Activity。
但是,你也可以藉由手動調用 finish()
方法,來達到銷毀 Activity 的目的。
讓我們再重啟甜點應用程式,點擊主頁的甜點來增加銷售額。
這時,我們改點擊 Home 鍵。並且在已開啟的應用程式目錄去重新打開甜點應用程式。
在點擊 Home 鍵後,可以看到 Logcat 顯示發生onPause()
、onStop()
。
在已開啟的應用程式目錄去重新打開甜點應用程式,你會觀察到發生onStart()
、onResume()
。
如果想要練習對於 Activity 生命週期的理解,可以使用 Udacity 提供的填空圖片(Activity Lifecycle Worksheet)。
參考資料